---
title: 安全护栏 (Guardrails)
description: 理解安全护栏 - langcrew中的安全和验证系统
---

安全护栏是 langcrew 中的安全和验证系统，确保数据质量、安全性和合规性。它们充当保护屏障，在处理前验证输入，在交付前验证输出。

## 什么是安全护栏？

安全护栏是可以应用于以下场景的验证函数：

- **输入**：在处理前验证传入数据
- **输出**：在交付前验证生成的内容
- **智能体**：对所有智能体操作应用全局验证规则
- **任务**：对单个任务应用特定验证规则

将护栏想象为质量控制检查点，确保您的AI系统在定义的边界内安全运行。

## 核心概念

### 输入护栏 vs 输出护栏

**输入护栏**在数据到达AI智能体之前进行验证：

- 检测敏感信息（密码、API密钥、个人身份信息）
- 验证数据格式和结构
- 检查用户权限和访问权限
- 实现速率限制和滥用防护

**输出护栏**在AI处理后验证内容：

- 确保内容符合质量标准
- 过滤不当或有害内容
- 验证输出格式和结构
- 检查事实准确性和平衡的语言

### 多层保护

护栏可以应用于多个级别：

- **智能体级别**：应用于智能体执行的所有任务
- **任务级别**：仅应用于特定任务
- **组合**：分层多种护栏类型以实现全面保护

## 基本结构

每个护栏函数都遵循简单的模式：

```python
@input_guard  # 或 @output_guard
def my_guardrail(data: Any) -> Tuple[bool, str]:
    """
    参数:
        data: 要验证的数据
        
    返回:
        Tuple[bool, str]: (是否有效, 消息)
    """
    # 验证逻辑
    if validation_passes:
        return True, "✅ 验证通过"
    else:
        return False, "❌ 验证失败: 原因"
```

## 关键组件

### 装饰器

- `@input_guard`：将函数标记为输入验证器
- `@output_guard`：将函数标记为输出验证器

### 错误处理

当护栏失败时，它们会引发 `GuardrailError` 异常，其中包含有关出错原因的详细信息。

### 集成点

护栏与以下组件无缝集成：

- **智能体**：通过 `input_guards` 和 `output_guards` 参数应用
- **任务**：对单个任务应用特定护栏
- **团队**：统一协调任务和智能体，它们各自配备护栏

## 优势

- **安全性**：防止处理敏感或有害数据
- **质量**：确保输出符合您的标准
- **合规性**：执行业务规则和法规
- **可靠性**：在处理管道中及早捕获错误
- **灵活性**：混合和匹配护栏以适应不同用例

## 使用场景

- **内容生成**：验证AI生成的内容质量
- **数据处理**：确保输入数据满足要求
- **安全**：防止敏感信息泄露
- **合规性**：执行特定行业法规
- **质量控制**：保持一致的输出标准

